In some situations, a user interacts with multiple computers in order to perform a particular task. In one example, a system administrator interacts with multiple server computers in order to monitor the status of and/or configure each of the server computers. In another example, a financial trader interacts with multiple computers on which various types of financial software are executed.
One way to provide a user with access to multiple computers involves physically locating the multiple computers within the user's workspace (for example, under or on top of a desk). In one configuration, a separate keyboard, monitor, and mouse or other pointing device is coupled to each of the multiple computers. In another configuration, a keyboard/video/mouse (KVM) switch is used to selectively couple a keyboard, video monitor, and/or mouse to the multiple computers. This enables the user to use a single keyboard, single video monitor, and/or single mouse to interact with the multiple computers. Typically, for each of the multiple computers with which a user interacts, the user must switch to that computer and manually initialize a session (for example, by logging into the computer, running one or more applications, and arranging one or more graphical user interface elements displayed by that computer).
Another way to provide a user with access to multiple computers involves physically locating the multiple computers outside of the user's immediate workspace at one or more remote locations. The user uses a client device located within the user's workspace to interact with software executing on the remote computers. The client device displays information received from the remote computers on one or more monitors coupled to the client device. The client device receives user input from a keyboard and/or mouse coupled to the client device and communicates the received input to an appropriate remote computer for processing by that remote computer. Such an approach is also referred to here as “remote computing.” Using such a remote computing approach can reduce costs associated with providing multiple users with access to the same types of software (for example, due to resource sharing and centralizing system administration). Typically, when such a remote computing approach is used, each user must manually initialize a separate session to each of the multiple remote computers with which that user interacts.